package com.ticket.system.service;

import java.util.List;

import com.ticket.system.domain.TYanchuReservedSeats;
import com.ticket.system.domain.TYanchuReservedTicket;

/**
 * 预留座与座位关联Service接口
 * 
 * @author ruoyi
 * @date 2023-10-18
 */
public interface ITYanchuReservedTicketService 
{
    /**
     * 查询预留座与座位关联
     * 
     * @param id 预留座与座位关联主键
     * @return 预留座与座位关联
     */
    public TYanchuReservedTicket selectTYanchuReservedTicketById(Long id);

    /**
     * 查询预留座与座位关联列表
     * 
     * @param tYanchuReservedTicket 预留座与座位关联
     * @return 预留座与座位关联集合
     */
    public List<TYanchuReservedTicket> selectTYanchuReservedTicketList(TYanchuReservedTicket tYanchuReservedTicket);

    public List<TYanchuReservedTicket> selectNewReservedTicketList(Long sessionId);

    /**
     * 新增预留座与座位关联
     * 
     * @param tYanchuReservedTicket 预留座与座位关联
     * @return 结果
     */
    public int insertTYanchuReservedTicket(TYanchuReservedTicket tYanchuReservedTicket);

    /**
     * 修改预留座与座位关联
     * 
     * @param tYanchuReservedTicket 预留座与座位关联
     * @return 结果
     */
    public int updateTYanchuReservedTicket(TYanchuReservedTicket tYanchuReservedTicket);

    /**
     * 批量删除预留座与座位关联
     * 
     * @param ids 需要删除的预留座与座位关联主键集合
     * @return 结果
     */
    public int deleteTYanchuReservedTicketByIds(Long[] ids);

    /**
     * 删除预留座与座位关联信息
     * 
     * @param id 预留座与座位关联主键
     * @return 结果
     */
    public int deleteTYanchuReservedTicketById(Long id);

    /**
     * 获取某场次下预留座座位
     *
     * @param sessionId
     * @return
     */
    List<String> disposeResSeat(Long sessionId);

    /**
     * 票房规划预留座信息
     *
     * @param tYanchuReservedTicket
     * @return
     */
    List<TYanchuReservedSeats> selectReservedTicketList(TYanchuReservedTicket tYanchuReservedTicket);

    /**
     * 删除场次下预留座信息
     *
     * @param sessionId
     */
    void deleteBySessionId(Long sessionId);
}
